package com.ungs.bo.impl;

import java.util.ArrayList;
import java.util.List;

import com.ungs.bo.IncidenteBO;
import com.ungs.dao.IncidenteDAO;
import com.ungs.dao.impl.IncidenteDAOImpl;
import com.ungs.entities.Incidente;
import com.ungs.entities.SolicitudCompra;
import com.ungs.utils.Constantes;

public class IncidenteBOImpl extends EntidadBOImpl<Incidente> implements
		IncidenteBO {

	IncidenteDAO incidenteDAO = new IncidenteDAOImpl();

	@SuppressWarnings("unchecked")
	@Override
	public List<Incidente> getAllIncidente() {
		List<Incidente> incidenteList = (List<Incidente>) getAll(Incidente.class);
		List<Incidente> incidenteReturn = new ArrayList<Incidente>();

		logger.info("Obteniendo lista de incidente con alta logica");
		for (Incidente incidente : incidenteList) {
			if (incidente.getEstadoLogico().equals(Constantes.ALTA)) {
				incidenteReturn.add(incidente);
			}
		}

		return incidenteReturn;
	}

	@Override
	public void eliminarinIncidente(Incidente incidente) {
		logger.info("Baja logica incidente: " + incidente.getId());
		incidente.setEstadoLogico(Constantes.BAJA);
		actualizar(incidente);

	}

	@Override
	public List<Incidente> getAllIncidenteBySolicitudCompra(
			SolicitudCompra solicitudCompra) {
		return incidenteDAO.getAllIncidenteBySolicitudCompra(solicitudCompra);
	}

}
